{$CLEO .qa}
{$USE CLEO+}
{$USE newOpcodes}
{$USE ini}
{$USE Audio}

0000: NOP

script_name "GNGVIS"

// By ArtemQa146

const
    sound_check = 30@
    wave_1 = 29@
    wave_1_r = 28@
    wave_1_g = 27@
    wave_2_r = 23@
    wave_2_g = 22@
    wave_3_r = 20@
    vis_x = 25@
    vis_y = 24@
    size_x = 18@
    size_y = 17@
    text_x = 16@
    text_y = 15@
    text_mode = 14@
end

0390: load_txd_dictionary 'gngw'
038F: load_texture "gng0" as 1
038F: load_texture "gng1" as 2
038F: load_texture "gng2" as 3
038F: load_texture "gng3" as 4
038F: load_texture "gng4" as 5
038F: load_texture "gng5" as 6
0E3C: get_texture_from_sprite 1 store_to wave_1
0E3C: get_texture_from_sprite 2 store_to wave_1_r
0E3C: get_texture_from_sprite 3 store_to wave_1_g
0E3C: get_texture_from_sprite 4 store_to wave_2_r
0E3C: get_texture_from_sprite 5 store_to wave_2_g
0E3C: get_texture_from_sprite 6 store_to wave_3_r
0391: release_textures

0087: vis_x = 0@ // (float)
0087: vis_y = 1@ // (float)
0087: size_x = 2@ // (float)
0087: size_y = 3@ // (float)
0087: text_x = 4@ // (float)
0087: text_y = 5@ // (float)
0085: text_mode = 6@ // (int)

timera = 0
timerb = 0

repeat
wait 0
    0A8D: 1@  = read_memory 0x96AB64 size 1 virtual_protect 0 //  mov     eax, ds:_ZN9CGangWars5StateE ; CGangWars::State

    if
        1@ == 0
    then
        0A93: terminate_this_custom_script
    end
    
    if and
        0EB9: is_hud_visible
        0EB8: is_radar_visible
        1@ == 1
    then
        gosub @Timer
        if  timera > 500
        then 0E1E: draw_texture_plus wave_1 event 1 pos vis_x vis_y size size_x size_y angle 180.0 depth 0 0 0 0 rgba 255 255 255 255
        else 0E1E: draw_texture_plus wave_1_r event 1 pos vis_x vis_y size size_x size_y angle 180.0 depth 0 0 0 0 rgba 255 255 255 255
        end
        if timera > 1000
        then timera = 0
        end
    end
    
    if and
        0EB9: is_hud_visible
        0EB8: is_radar_visible
        1@ == 2
    then
        gosub @Wave
        timerb = 0
        0E1E: draw_texture_plus wave_1_r event 1 pos vis_x vis_y size size_x size_y angle 180.0 depth 0 0 0 0 rgba 255 255 255 255
    end
    
    if and
        0EB9: is_hud_visible
        0EB8: is_radar_visible
        1@ == 3
    then
        gosub @Timer
        if  timera > 500
        then 0E1E: draw_texture_plus wave_1_g event 1 pos vis_x vis_y size size_x size_y angle 180.0 depth 0 0 0 0 rgba 255 255 255 255
        else 0E1E: draw_texture_plus wave_2_r event 1 pos vis_x vis_y size size_x size_y angle 180.0 depth 0 0 0 0 rgba 255 255 255 255
        end
        if timera > 1000
        then timera = 0
        end
    end

    if and
        0EB9: is_hud_visible
        0EB8: is_radar_visible
        1@ == 4
    then
        gosub @Wave
        timerb = 0
        0E1E: draw_texture_plus wave_2_r event 1 pos vis_x vis_y size size_x size_y angle 180.0 depth 0 0 0 0 rgba 255 255 255 255
    end
    
    if and
        0EB9: is_hud_visible
        0EB8: is_radar_visible
        1@ == 5
    then
        gosub @Timer
        if  timera > 500
        then 0E1E: draw_texture_plus wave_2_g event 1 pos vis_x vis_y size size_x size_y angle 180.0 depth 0 0 0 0 rgba 255 255 255 255
        else 0E1E: draw_texture_plus wave_3_r event 1 pos vis_x vis_y size size_x size_y angle 180.0 depth 0 0 0 0 rgba 255 255 255 255
        end
        if timera > 1000
        then timera = 0
        end
    end

    if and
        0EB9: is_hud_visible
        0EB8: is_radar_visible
        1@ == 6
    then
        gosub @Wave
        timerb = 0
        0E1E: draw_texture_plus wave_3_r event 1 pos vis_x vis_y size size_x size_y angle 180.0 depth 0 0 0 0 rgba 255 255 255 255
    end

 

until not player.Defined(0)
0A93: terminate_this_custom_script

:Timer
if
    text_mode == 1
then
    2@ = 10000
    0062: 2@ -= timerb  // (int)
    2@ /= 1000
    if 2@ < 0
    then 2@ = 0
    end
    03F0: enable_text_draw 1
    03E3: set_texture_to_be_drawn_antialiased 1
    0348: enable_text_draw_proportional 1
    0341: set_text_draw_align_justify 0
    060D: draw_text_shadow 0 rgba 0 0 0 0
    081C: draw_text_outline 1 RGBA 0 0 0 100
    033F: set_text_draw_letter_size 0.3 1.0
    0342: set_text_draw_centered 1
    0349: set_text_draw_font 2
    045A: draw_text_1number text_x text_y GXT 'gngw1' number 2@  // ALL RACES WON!~n~~w~$~1~
end
return

:Wave
if
    text_mode == 1
then
    if 1@ == 2
    then 2@ = 1
    end
    if 1@ == 4
    then 2@ = 2
    end
    if 1@ == 6
    then 2@ = 3
    end
    03F0: enable_text_draw 1
    03E3: set_texture_to_be_drawn_antialiased 1
    0348: enable_text_draw_proportional 1
    0341: set_text_draw_align_justify 0
    060D: draw_text_shadow 0 rgba 0 0 0 0
    081C: draw_text_outline 1 RGBA 0 0 0 100
    033F: set_text_draw_letter_size 0.3 1.0
    0342: set_text_draw_centered 1
    0349: set_text_draw_font 2
    045A: draw_text_1number text_x text_y GXT 'gngw2' number 2@  // ALL RACES WON!~n~~w~$~1~
end
return

